home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Graphics Programming (2nd Edition)
/
Visual Basic Graphics Programming 2nd Edition.iso
/
Src
/
Ch1
/
Scroll.frm
(
.txt
)
< prev
next >
Wrap
Visual Basic Form
|
1999-04-16
|
4KB
|
131 lines
VERSION 5.00
Begin VB.Form frmScroll
Caption = "Scroll"
ClientHeight = 3195
ClientLeft = 60
ClientTop = 345
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3195
ScaleWidth = 4680
StartUpPosition = 3 'Windows Default
Begin VB.HScrollBar hbarMarble
Height = 255
Left = 0
TabIndex = 3
Top = 2400
Width = 2295
End
Begin VB.VScrollBar vbarMarble
Height = 2295
Left = 2400
TabIndex = 2
Top = 0
Width = 255
End
Begin VB.PictureBox picOuter
Height = 2295
Left = 0
ScaleHeight = 2235
ScaleWidth = 2235
TabIndex = 0
Top = 0
Width = 2295
Begin VB.PictureBox picInner
AutoSize = -1 'True
BorderStyle = 0 'None
Height = 6045
Left = 360
Picture = "Scroll.frx":0000
ScaleHeight = 6045
ScaleWidth = 6225
TabIndex = 1
Top = 240
Width = 6225
End
End
Attribute VB_Name = "frmScroll"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
' Arrange the scroll bars.
Private Sub ArrangeControls()
Dim border_width As Single
Dim got_wid As Single
Dim got_hgt As Single
Dim need_wid As Single
Dim need_hgt As Single
Dim need_hbar As Boolean
Dim need_vbar As Boolean
' See how much room we have and need.
border_width = picOuter.Width - picOuter.ScaleWidth
got_wid = ScaleWidth - border_width
got_hgt = ScaleHeight - border_width
need_wid = picInner.Width
need_hgt = picInner.Height
' See if we need the horizontal scroll bar.
If need_wid > got_wid Then
need_hbar = True
got_hgt = got_hgt - hbarMarble.Height
End If
' See if we need the vertical scroll bar.
If need_hgt > got_hgt Then
need_vbar = True
got_wid = got_wid - vbarMarble.Width
' See if we now need the horizontal scroll bar.
If (Not need_hbar) And need_wid > got_wid Then
need_hbar = True
got_hgt = got_hgt - hbarMarble.Height
End If
End If
' Arrange the controls.
picOuter.Move 0, 0, got_wid + border_width, got_hgt + border_width
If need_hbar Then
hbarMarble.Move 0, got_hgt + border_width, got_wid + border_width
hbarMarble.Min = 0
hbarMarble.Max = picInner.ScaleWidth - got_wid
hbarMarble.SmallChange = got_wid / 5
hbarMarble.LargeChange = got_wid
hbarMarble.Visible = True
Else
hbarMarble.Value = 0
hbarMarble.Visible = False
End If
If need_vbar Then
vbarMarble.Move got_wid + border_width, 0, vbarMarble.Width, got_hgt + border_width
vbarMarble.Min = 0
vbarMarble.Max = picInner.ScaleHeight - got_hgt
vbarMarble.SmallChange = got_hgt / 5
vbarMarble.LargeChange = got_hgt
vbarMarble.Visible = True
Else
vbarMarble.Value = 0
vbarMarble.Visible = False
End If
End Sub
Private Sub Form_Load()
picInner.AutoSize = True
picInner.Move 0, 0
End Sub
Private Sub Form_Resize()
ArrangeControls
End Sub
' Reposition picInner.
Private Sub hbarMarble_Change()
picInner.Left = -hbarMarble.Value
End Sub
' Reposition picInner.
Private Sub hbarMarble_Scroll()
picInner.Left = -hbarMarble.Value
End Sub
' Reposition picInner.
Private Sub vbarMarble_Change()
picInner.Top = -vbarMarble.Value
End Sub
' Reposition picInner.
Private Sub vbarMarble_Scroll()
picInner.Top = -vbarMarble.Value
End Sub